import { message } from 'antd';
import {
  getDetail,
  getCostCenter,
  getInsIdeList,
  getAccountList,
  getInsAccuGroupList,
  getSecAccoList,
  getSerConfigList,
  submit,
} from '@/services/addempupdate';

export default {
  state: {
    sendId: '',
    addTaskId: '',
    sendDraftId: '',
    dictList: [
      'ADD_ID_TYPE',
      'GENDER',
      'PAY_FEES_WAY',
      'EXECUTE_POWER_TYPE',
      'CONT_SIGN_WAY',
      'EMP_CONT_TYPE',
      'WORK_HOURS',
      'YES_NO_FLAG',
      'PD_CATE',
      'BIZ_INS_TYPE',
      'BIZ_ACCU_TYPE',
      'NATIONALITY',
      'ORGANIZATION',
      'MRTL_STATUS',
      'POL_STATUS',
      'HOUSEHOLD_TYPE',
    ],
    YES_NO_FLAG: [],
    costCenterList: [], // 成本中心
    payEmpClassifyList: [], // 缴费人员类别
    isBaseInfoFlag: false,
    baseInfoDto: {
      entryDate: null,
      areaId: '',
      custId: '',
      quoId: '',
      insCityId: '',
      accuCityId: '',
    },
    // isChrgFlag: false, // 是否修改收费年月
    isCostCenterFlag: false, // 是否修改成本中心
    insIdeFlag: true, // 是否显示缴费人员类别
    insIdeUpdateFlag: true, // 是否可修改缴费人员类别
    isInsIdeFlag: false, // 是否修改缴费人员类别
    insIdeBefore: '',
    // isProbFlag: false, // 是否可修改业务开始日期
    isSendBeginDateFlag: false, // 是否修改业务开始日期
    insDecWageFlag: true, // 是否显示社保申报工资
    insDecWageUpdateFlag: true, // 是否可修改社保申报工资
    isInsDecWageFlag: false, // 是否修改社保申报工资
    insDecWageBefore: 0, // 社保申报工资
    accuDecWageFlag: true, // 是否显示公积金申报工资
    accuDecWageBefore: 0, // 公积金申报工资
    accuDecWageUpdateFlag: true, // 是否可修改公积金申报工资
    isAccuDecWageFlag: false, // 是否修改公积金申报工资
    insLsPkgFlag: true, // 是否显示社保组合
    insLsPkgUpdateFlag: true, // 是否可修改社保组合
    isInsLsPkgFlag: false, // 是否修改社保组合
    accuLsPkgFlag: true, // 是否显示公积金组合
    accuLsPkgUpdateFlag: true, // 是否可修改社保组合
    isAccuLsPkgFlag: false, // 是否修改社保组合
    // chrgBeginDateBefore: '', // 收费开始年月
    costCenter: '', // 成本中心
    sendBeginDateUpdateFlag: true, // 是否可修改业务开始日期
    sendBeginDateBefore: '', // 业务开始日期
    pdSetFlag: '2', // 是否打开产品分项设置
    assSetFlag: '2', // 是否打开险种分项设置
    insDecWageSetFlag: '2', // 是否打开险种分项设置工资
    insSetFlag: '1', // 五险是否合一:1合 2不合一
    insWageList: [], // 险种分项列表
    pdBeginDateList: [], // 产品分项数据源
    oldPdBeginDateList: [], // 产品分项数据源(接口原数据)
    assBeginDateList: [], // 险种分项设置数据源
    oldAssBeginDateList: [], // 险种分项设置数据源(接口原数据)
    insSerConfigFlag: '2', // 社保组合是否使用服务配置
    insPayWayList: [], // 社保缴费方式
    accuPayWayList: [], // 公积金缴费方式
    accuSerConfigFlag: '2', // 公积金是否使用服务配置
    serConfigList: [], // 服务配置 ：社保
    accuSerConfigList: [], // 服务配置:公积金
    isHasSerAcco: false, // 有无工伤险种
    secAccoList: [], // 工伤二级户列表
    insGroupData: [], // 社保组合数据
    accuGroupData: [], // 公积金组合数
    insAccountList: [], // 社保单立户账户数据
    accuAccountList: [], // 公积金单立户账户数据
    insSingleAccout: '1', // 社保:选择单立户
    accuSingleAccout: '1', // 公积金:选择单立户
    insGroupList: [], // 社保组合列表
    accuGroupList: [], // 公积金组合列表
    secAccoName: '', // 工伤二级户账户名称
    isEdit: true, // 是否有更改信息
    insLsPkgDtoList: [],
    accuLsPkgDto: {},
    isSupplyRun: false, // 是否是供应商执行
    subite: true, // 分项设置
    dateflg: false,
    isContEndRequired: false, // 有无固定期限
    isTryDateRequired: false, // 有无试用期
  },
  effects: {
    // 详情数据
    *fetchDetail(
      {
        payload: { addTaskId },
      },
      { call }
    ) {
      const response = yield call(getDetail, { addTaskId });
      return response;
    },
    // 获取成本中心
    *getCostCenter({ payload }, { call }) {
      const response = yield call(getCostCenter, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取成本中心数据：服务端错误');
      return false;
    },
    // 获取缴费人员类别
    *getInsIdeList({ payload }, { call }) {
      const response = yield call(getInsIdeList, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取缴费人员类别数据：服务端错误');
      return false;
    },
    // 获取服务配置列表
    *getSerConfigList({ payload }, { call }) {
      const response = yield call(getSerConfigList, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取服务配置数据：服务端错误');
      return false;
    },
    // 获取单立户账户列表
    *getAccountList({ payload }, { call }) {
      const response = yield call(getAccountList, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取单立户账户列表数据：服务端错误');
      return false;
    },
    // 获取单立户账户列表
    *getInsAccuGroupList({ payload }, { call }) {
      const response = yield call(getInsAccuGroupList, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取组合列表数据：服务端错误');
      return false;
    },
    // 获取工伤二级户列表
    *getSecAccoList({ payload }, { call }) {
      const response = yield call(getSecAccoList, payload);
      if (response.success) {
        return response;
      }
      message.warning(response.message || '获取工伤二级户列表数据：服务端错误');
      return false;
    },
    // 提交数据
    submit:[
      function*({ payload }, { call }) {
        const response = yield call(submit, payload);
        return response;
      },
      { type:'throttle',ms:10000 }
    ]
  },

  reducers: {
    // 设置修改当前state数据
    updateModelData(state, { payload }) {
      console.log('====================================',payload);
      console.log('====================================');
      return {
        ...state,
        ...payload,
      };
    },
  },
};
